var express = require('express');
var router = express.Router();
const User = require('../DB/JJK');
const axios = require('axios');

router.get('/', async (req, res) => {
  res.json({ route: 'jjk', status: 'ok' });
})

router.post('/login', async (req, res) => {
  const { username, password } = req.body;
  if (!username || !password) {
    return res.status(400).json({ error: '用户名和密码不能为空' });
  }
  try {
    const user = await User.findOne({ username });
    if (!user) {
      return res.status(401).json({ error: '用户不存在' });
    }
    if (user.password !== password) {
      return res.status(401).json({ error: '密码错误' });
    }
    res.json({ message: '登录成功', user: { username: user.username } });
  } catch (err) {
    res.status(500).json({ error: '服务器错误' });
  }
});

router.post('/register', async (req, res) => {
  const { username, password, role } = req.body;
  if (!username || !password) {
    return res.status(400).json({ error: '用户名和密码不能为空' });
  }
  try {
    const existUser = await User.findOne({ username });
    if (existUser) {
      return res.status(409).json({ error: '用户名已存在' });
    }
    // 如果没有指定role，默认为user
    const newUser = new User({ 
      username, 
      password, 
      role: role || 'user' 
    });
    await newUser.save();
    res.status(200).json({ message: '注册成功', user: { username: newUser.username, role: newUser.role } });
  } catch (err) {
    res.status(500).json({ error: '服务器错误' });
  }
});

router.get('/verify-email', async (req, res) => {
  const { email } = req.query;
  const username = 'user';
  if (!email || !username) {
    return res.status(400).json({ error: '邮箱和用户名不能为空。' });
  }
  try {
    const url = `https://ygwyy.top/邮箱/index.php?email=${encodeURIComponent(email)}&username=${encodeURIComponent(username)}`;
    const response = await axios.get(url);
    // 打印第三方接口返回内容，便于调试
    console.log('第三方邮箱接口返回:', response.data);
    // 实际验证码字段为 response.data.message
    const code = response.data.message || null;
    res.json({ result: response.data, code });
  } catch (err) {
    res.status(500).json({ error: '邮箱验证请求失败' });
  }
});

// 获取所有用户信息接口（管理员用）
router.get('/users', async (req, res) => {
  try {
    // 查询所有用户，包含所有字段
    const users = await User.find({}, 'username password role createdAt updatedAt');
    
    if (!users || users.length === 0) {
      return res.json({ 
        success: true, 
        message: '暂无用户数据', 
        data: [] 
      });
    }
    
    // 返回用户列表
    res.json({
      success: true,
      message: '获取用户列表成功',
      data: users,
      total: users.length
    });
  } catch (err) {
    console.error('获取用户列表失败:', err);
    res.status(500).json({ 
      success: false, 
      error: '服务器错误，获取用户列表失败' 
    });
  }
});

// 根据用户名获取特定用户信息
router.get('/user/:username', async (req, res) => {
  const { username } = req.params;
  
  if (!username) {
    return res.status(400).json({ 
      success: false, 
      error: '用户名不能为空' 
    });
  }
  
  try {
    const user = await User.findOne({ username }, 'username password role createdAt updatedAt');
    
    if (!user) {
      return res.status(404).json({ 
        success: false, 
        error: '用户不存在' 
      });
    }
    
    res.json({
      success: true,
      message: '获取用户信息成功',
      data: user
    });
  } catch (err) {
    console.error('获取用户信息失败:', err);
    res.status(500).json({ 
      success: false, 
      error: '服务器错误，获取用户信息失败' 
    });
  }
});
module.exports = router;